package com.stone.front.order.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Repository;

import com.stone.base.dao.BaseDao;
import com.stone.front.order.entity.BfSite;

/**
 * 联系地址管理
 * @author Stone P
 *
 */
@Repository
public class SiteDao extends BaseDao implements ISiteDao {
	/**
	 * 查询联系地址列表
	 * @param userId	用户Id	
	 * @return
	 */
	@Override
	public List<BfSite> selectSiteList(int userId) {
		List<BfSite> list = this.hibernateTemplate.find("from BfSite where userid = ? order by isdefault desc", userId);
		return list;
	}
	
	/**
	 * 查询联系地址详情
	 * @param siteId	联系地址Id
	 * @return
	 */
	@Override
	public BfSite selectSiteDetail(int siteId) {
		BfSite Site = this.hibernateTemplate.get(BfSite.class, siteId);
		return Site;
	}

	/**
	 * 增加联系地址
	 * @param site	联系地址信息
	 * @return
	 */
	@Override
	public void addSite(BfSite site) {
		this.hibernateTemplate.save(site);
	}

	/**
	 * 修改联系地址
	 * @param site	联系地址信息
	 * @return
	 */
	@Override
	public void updateSite(BfSite site) {
		this.hibernateTemplate.update(site);
	}
	
	/**
	 * 将所有的地址改为非默认地址
	 */
	@Override
	public void updateDefaultSite() {
		String sql = "update bf_site set isdefault = 0";
		Session session = this.hibernateTemplate.getSessionFactory().openSession();
		Query query = session.createSQLQuery(sql);
		query.executeUpdate();
	}
	
	/**
	 * 删除联系地址
	 * @param siteId	联系地址信息Id
	 */
	@Override
	public void deleteSite(BfSite site) {
		this.hibernateTemplate.delete(site);
	}
}
